/**
 * 工具函数封装
 * 基于 cross-env-plugins 提供统一的工具函数和验证函数
 */
import { utils as crossUtils, valids as crossValids } from 'cross-env-plugins'

// 导出所有工具函数
export const utils = {
  ...crossUtils
}

// 导出所有验证函数
export const valids = {
  ...crossValids
}

/**
 * 格式化日期（统一格式：yyyy-MM-dd hh:mm:ss）
 * @param dateStr - 日期字符串或 Date 对象
 * @returns 格式化后的日期字符串，如果无效则返回 '-'
 */
export const formatDate = (dateStr?: string | Date): string => {
  if (!dateStr) return '-'
  try {
    return crossUtils.formatTime(dateStr, 'yyyy-MM-dd hh:mm:ss')
  } catch {
    return typeof dateStr === 'string' ? dateStr : '-'
  }
}

/**
 * 验证权限编码格式（小写字母、数字、冒号、下划线和连字符）
 * @param code - 权限编码
 * @returns 是否符合格式
 */
export const isPermissionCode = (code: string): boolean => {
  return /^[a-z0-9:_-]+$/.test(code)
}

// 导出默认对象
export default {
  utils,
  valids,
  formatDate,
  isPermissionCode
}

